/*
 * Copyright (c) 2012 Sqpoll.
 * All rights reserved.
 */
package com.yglab.sqpoll.model;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * This class is a model for survey question.
 * 
 * @author Younggue Bae
 */
@SuppressWarnings("serial")
public class Question implements Serializable {

	private int surveyId;
	private int questionId;
	private int sectionId;
	private int sequence;
	private String question;
	private String instruction;
	private String status;
	private String type;
	private String options;
	private Date openDate;
	private Date closeDate;
	private String createUserId;
	private String updateUserId;
	private Date createDate;
	private Date updateDate;
	
	private List<QuestionItem> questionItems = new ArrayList<QuestionItem>();
	private List<AnswerChoice> answerChoices = new ArrayList<AnswerChoice>();
	
	public int getSurveyId() {
		return surveyId;
	}
	public void setSurveyId(int surveyId) {
		this.surveyId = surveyId;
	}
	public int getQuestionId() {
		return questionId;
	}
	public void setQuestionId(int questionId) {
		this.questionId = questionId;
	}
	public int getSectionId() {
		return sectionId;
	}
	public void setSectionId(int sectionId) {
		this.sectionId = sectionId;
	}
	public int getSequence() {
		return sequence;
	}
	public void setSequence(int sequence) {
		this.sequence = sequence;
	}
	public String getQuestion() {
		return question;
	}
	public void setQuestion(String question) {
		this.question = question;
	}
	public String getInstruction() {
		return instruction;
	}
	public void setInstruction(String instruction) {
		this.instruction = instruction;
	}
	public String getStatus() {
		return status;
	}
	public void setStatus(String status) {
		this.status = status;
	}
	public String getType() {
		return type;
	}
	public void setType(String type) {
		this.type = type;
	}
	public String getOptions() {
		return options;
	}
	public void setOptions(String options) {
		this.options = options;
	}
	public Date getOpenDate() {
		return openDate;
	}
	public void setOpenDate(Date openDate) {
		this.openDate = openDate;
	}
	public Date getCloseDate() {
		return closeDate;
	}
	public void setCloseDate(Date closeDate) {
		this.closeDate = closeDate;
	}
	public String getCreateUserId() {
		return createUserId;
	}
	public void setCreateUserId(String createUserId) {
		this.createUserId = createUserId;
	}
	public String getUpdateUserId() {
		return updateUserId;
	}
	public void setUpdateUserId(String updateUserId) {
		this.updateUserId = updateUserId;
	}
	public Date getCreateDate() {
		return createDate;
	}
	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}
	public Date getUpdateDate() {
		return updateDate;
	}
	public void setUpdateDate(Date updateDate) {
		this.updateDate = updateDate;
	}
	public List<QuestionItem> getQuestionItems() {
		return questionItems;
	}
	public void setQuestionItems(List<QuestionItem> questionItems) {
		this.questionItems = questionItems;
	}
	public List<AnswerChoice> getAnswerChoices() {
		return answerChoices;
	}
	public void setAnswerChoices(List<AnswerChoice> answerChoices) {
		this.answerChoices = answerChoices;
	}
	
	@Override
	public String toString() {
		return "Question [surveyId=" + surveyId + ", questionId=" + questionId + ", sectionId=" + sectionId + ", sequence="
				+ sequence + ", question=" + question + ", instruction=" + instruction + ", status=" + status + ", type="
				+ type + ", options=" + options + ", openDate=" + openDate + ", closeDate=" + closeDate + ", createUserId="
				+ createUserId + ", updateUserId=" + updateUserId + ", createDate=" + createDate + ", updateDate=" + updateDate
				+ ", questionItems=" + questionItems + ", answerChoices=" + answerChoices + "]";
	}

}
